#include <stdio.h>

int classwise(unsigned char *ip)//函数：根据IP地址返回传统地址分类
{
    unsigned char first_byte = ip[0];//获取IP地址的第一个字节

    //根据第一个字节的范围判断地址分类
    if(first_byte>=0&&first_byte<=127) return 0;//A类地址
    else if(first_byte>=128&&first_byte<=191) return 1;//B类地址
    else if(first_byte>=192&&first_byte<=223) return 2;//C类地址
    else if(first_byte>=224&&first_byte<=239) return 3;//D类地址
    else if(first_byte>=240&&first_byte<=255) return 4;//E类地址
    else return -1;//无效地址
}

int main()//测试函数
{
    //示例数据
    unsigned char ip1[4]={10,0,0,1};//A类地址
    unsigned char ip2[4]={172,16,0,1};//B类地址
    unsigned char ip3[4]={192,168,1,1};//C类地址
    unsigned char ip4[4]={224,0,0,1};//D类地址
    unsigned char ip5[4]={240,0,0,1};//E类地址

    //测试并输出结果
    printf("IP1的分类: %d\n",classwise(ip1));//应输出0
    printf("IP2的分类: %d\n",classwise(ip2));//应输出1
    printf("IP3的分类: %d\n",classwise(ip3));//应输出2
    printf("IP4的分类: %d\n",classwise(ip4));//应输出3
    printf("IP5的分类: %d\n",classwise(ip5));//应输出4

    return 0;
}